- 2024/01/25 06:40 掲載
ベクトルデータベースとは何か? RAG・生成AIで使う仕組み、主要製品、選び方を図解
英大学院修了後、RPA企業に勤務。大手通信社シンガポール支局で経済・テクノロジーの取材・執筆を担当。その後、Livit Singaporeでクライアント企業のメディア戦略とコンテンツ制作を支援(主にドローン/AI領域)。2026年2月、シンガポールで「SimplyPNG」を設立し、AI画像編集のモデル運用とGPUコスト最適化を手がける。主にEC向け画像処理ワークフローの設計・運用自動化に注力。
ベクトルデータベースとは何か?
今後2~3年かけて企業における生成AI活用が急速に増えると予想される中、「ベクトルデータベース」への注目度が高まっている。ベクトルデータベースとは、生成AIが扱う非構造化データ(テキスト、画像、音声など)の格納・管理・照会で利用されるデータベースで、企業が自社データを活用した生成AIアプリケーションを開発する際に必須となるインフラだ。
企業で最も普及している生成AIユースケースの1つとして、社内データを大規模言語モデルに読み込ませた社内向けカスタマイズチャットAIが挙げられる。たとえば、OpenAIのGPT-3.5やGPT-4モデルなどに社内データを与え、社員が社内データから必要な情報やインサイトを取得できるシステムを開発する動きが増えつつある。マッキンゼーが社内で展開しているLilliはその好例といえるだろう。
基本的にOpenAIのGPTモデルなどは、ネット上の公開データをもとにトレーニングされたもので、社内データなどの非公開データに関する知識は持ち合わせていない。この不足を補うために、企業の社内データをAIモデルに与え、AIモデルが企業の特定文脈に沿った回答を生成できるようにするシステムを開発する動きが増えつつあるのだ。
このアプローチは「Retrieval Augmented Generation(RAG)」と呼ばれ、国内外多くの企業で採用・計画が進んでいる。
ベクトルデータベースは、このRAGアプローチにおいて非常に重要な存在であり、ベクトルデータベースサービスを提供する企業への投資も生成AIトレンドの中で急速に拡大中だ。
MarketsandMarketsの調査によると、ベクトルデータベース市場規模は2023年に15億ドルとなり、今後23%以上の成長率を維持し、2028年には43億ドルに拡大する見込みという。
従来のデータベース(SQLなど)と何が違うのか
データベースといえば、Eコマースのバックエンドやウェブアプリケーションにおけるユーザー管理などで広く利用されているSQL系のリレーショナルデータベースを指すことが多いだろう。このリレーショナルデータベースとベクトルデータベースにはどのような違いがあるのか気になるところ。リレーショナルデータベースの特徴とベクトルデータベースの特徴を比較してみたい。
まず、リレーショナルデータベースの特徴を概観したい。
データ構造は、行と列を使用してデータを表形式で格納する構造。エクセルのようなスプレッドシートのような構造だ。
クエリ言語としてSQL(Structured Query Language)を使用しデータを操作する。構造化されたデータの管理に適しており、Eコマース、トランザクション処理、顧客管理情報などで広く利用されている。
インデックスと検索では、B-treeなどのインデックス構造により、大量の構造化データを素早く検索できる仕組みとなっている。
これに対し、ベクトルデータベースはどのような特徴を持つのか。
まずデータは上記でも説明したように、ベクトル形式で格納される構造で、多次元空間の点として表されるデータ表現となる。
ベクトルデータベースのクエリは、伝統的なSQLクエリとは異なり、ベクトル間の類似性に基づいて実施される。このとき使用されるのは、ユークリッド距離やコサイン類似性など。ユークリッド距離とは、2つの点間の直線最短距離をピタゴラスの定理を用いて測定する方法。一方、コサイン類似性は、2つの非ゼロベクトル間の類似度をコサイン角度を用いて測定する。-1から1の間で変動し、ベクトル間の類似度が高いほど1に近づく。
具体的な活用プロセスとは?
このような特徴を持つベクトルデータベースだが、RAGアプローチの文脈で、どのように活用されるのか、またどのようなメリットを持つのかみていきたい。上記でも触れたように、ベクトルデータベースを利用するには、エンベディングモデルによる非構造化データのベクトル化(数値化)が必須となる。
一般的には、ベクトル化においてはOpenAIが提供するadaモデルや同社の競合となるCohereのエンベディングモデルが広く利用されている。ここではOpenAIのadaモデルを利用した場合のプロセスを紹介したい。adaモデルとは、テキストデータを1536次元のベクトルに変換するモデルだ。
たとえば、「ベクトルデータベースが注目される理由」という言葉を、adaモデルでベクトル化する際、背後では以下のようなプロセスが実施される。
まず「ベクトルデータベースが注目される理由」という言葉がadaモデルに入力されると、モデルはこのフレーズを小さな単位(トークン)に分割する。トークンとはテキストを構成する基本要素。トークン化とは、フレーズを文字、音節、単語の一部などに分割することを指す。日本語の場合、1文字が1つのトークンになることが多い。
その後、各トークンは、モデルによって特定のベクトルに変換される。この際、事前にトレーニングされたライブラリが用いられる。モデルは各トークンのコンテクスト(周囲のトークンとの関係)を考慮し、意味を理解するために、トークンの組み合わせや順序など、単なる文字情報だけでなく、周辺のさまざまな情報を分析する。
これらの情報をもとに、モデルはフレーズ全体の意味を表す1536次元のベクトルを生成する。このベクトルは、フレーズが持つ意味やニュアンスを包括的に表現する数値となる。
仮の数値ではあるが、「ベクトルデータベースが注目される理由」をあらわす1536次元のベクトルのうち、最初の10要素を示すと以下のような数値配列となる。
[0.5488135, 0.71518937, 0.60276338, 0.54488318, 0.4236548, 0.64589411, 0.43758721, 0.891773, 0.96366276, 0.38344152]「ベクトルデータベースが注目される理由」という18文字の言葉が1536次元のベクトルに変換されるのを直感的に理解するのは難しいが、このベクトルには文字情報以外にもさまざまな情報が含まれていると考えると理解の助けとなる。
文字情報以外の情報とは、文の構造や文法・品詞関係の文法的特徴、単語やフレーズ・文や段落でどのように扱われるのかに関する文脈的特徴、トーンやニュアンスなどの感情的特徴、また文のスタイルなどが含まれる。adaモデルの場合、これらの総合的な情報が1536次元のベクトルとして表現されるということだ。Cohereのエンベディングモデルは、1024次元などとモデルによって次元数は異なる。一般的に次元数が小さくなるほど処理速度は速くなる。
このようにベクトル化されたデータを格納するのがベクトルデータベースとなる。また、クエリの処理もベクトルデータベース内で実施されることになる。
クエリが発生した場合、このクエリもベクトル化され、ベクトルデータベース内ですでに格納されたベクトルデータとの類似性検索が行われ、関連度の高いベクトルデータが抽出される。
その後、抽出された関連度の高いベクトルデータは自然言語に戻され、チャットAIのコンテクストウィンドウに挿入される。この情報をもとにチャットAIによる回答生成が行われる。
これらの一連の流れがベクトルデータベースを用いたRAGアプローチとなる。
ベクトルデータベースのメリットは何か
ベクトルデータベースの最大のメリットは、大量の非構造化データであっても、意味ある形で高速に扱える点といえるだろう。企業が自社情報をチャットAIに読み込ませるRAGアプローチを想定すると、ベクトルデータベースを使う場合とそうでない場合に大きな差が生まれる。
自社情報がPDF100ページに及ぶ量であると仮定し、ベクトルデータベースを利用しない場合を考えてみたい。
OpenAIのGPT-3.5やGPT-4のベースモデルが1回のチャットセッションで扱えるトークン数は4000トークン(日本語4000文字)ほど。この4000トークンは、インプットとアウトプットを合わせたものだ。つまり、プロンプトに2000トークンを入力すると、アウトプットできるのは必然的に2000トークンとなる。
RAGの場合、意味あるアウトプットを得るには、プロンプトに入力するインプット情報をできるだけリッチにすることが望ましい。これらのインプット情報は、類似性の高いものであることが前提となる。類似性の低い情報がプロンプトに入力されてしまうと、関連度が低いアウトプットが生成されてしまうためだ。
しかし、エンベディングとベクトルデータベースを使わない場合、100ページのPDF情報から得られるのは、キーワードや固定クエリにもとづく検索結果であり、それらの情報が高い類似性を持っているかどうかは分からない。インプット量が2000トークンほどとすると、日本語では2000文字ほど。PDFであれば2ページ分に相当する文字をインプットできるが、この場合、類似性不明の情報が2000文字インプットされることになる。
この情報をもとにアウトプットを生成しても、望んだ回答は得られないだろう。
この点、エンベディングとベクトルデータベースを活用すると、100ページのPDFであっても、情報量の軽い数値として扱い、高速処理することが可能だ。また、文字情報以外にさまざまな情報を含んだベクトルデータによる類似性検索が可能であり、入力2000トークンという制限があっても、ピンポイントで類似性の高いデータを抽出し、アウトプットの精度を高めることができる。
市場の主要プレイヤーと周辺ビジネスの立ち上がり
ベクトルデータベース需要の高まりに伴い、関連サービスを提供するスタートアップへの投資も拡大している。現在、ベクトルデータベース市場においてリーダー的な存在となっているのがニューヨークを拠点とするPineconeだ。2023年4月時点までで、同社は1億ドル以上を調達、評価額は7億5,000万ドルに達している。類似性検索や近接検索に強みを持つとされる。
ドイツ・ベルリン発のQdrantも注目株の1つ。同社はプレシードラウンドで220万ドル、その後のシードラウンドで750万ドルを調達。高速検索やフィルタリング機能に定評がある。欧州ではオランダ発のWeaviateも注目される存在。同社はセマンティック検索や自動分類などが強みで、2023年4月のシリーズBラウンドでは50万ドルを調達した。
このほかZilliz、Chroma、LanceDBなど多数のベクトルデータベースサービスが登場しており、競争激化の様相となっている。
一方ベクトルデータベースをめぐっては、Monte Carlo DataがPineconeなどを対象としたデータベースの安全性監視サービスを発表するなど、周辺サービスに関するビジネス機会の拡大も起こっている。
AI・生成AIのおすすめコンテンツ
AI・生成AIの関連コンテンツ
PR
PR
PR